aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/accepted/[text]
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-06-24 11:07:55 -0700
committerAdam Soltys <[email protected]>2025-06-24 11:07:55 -0700
commit3c0dfa5e26f54b5d2c2f69ba6c3eb176666a20d4 (patch)
tree74e79afec098569ad219597cfa0a34544b2d8a70 /src/routes/(app)/accepted/[text]
parent55d1ef3413306e1e4379ca69e5034240c29f6ec3 (diff)
downloadcoinos-ui-3c0dfa5e26f54b5d2c2f69ba6c3eb176666a20d4.tar.gz
coinos-ui-3c0dfa5e26f54b5d2c2f69ba6c3eb176666a20d4.zip
bitcoin accepted page
Diffstat (limited to 'src/routes/(app)/accepted/[text]')
-rw-r--r--src/routes/(app)/accepted/[text]/+page.server.ts4
-rw-r--r--src/routes/(app)/accepted/[text]/+page.svelte40
-rw-r--r--src/routes/(app)/accepted/[text]/raw/+server.ts16
3 files changed, 60 insertions, 0 deletions
diff --git a/src/routes/(app)/accepted/[text]/+page.server.ts b/src/routes/(app)/accepted/[text]/+page.server.ts
new file mode 100644
index 00000000..210c3c45
--- /dev/null
+++ b/src/routes/(app)/accepted/[text]/+page.server.ts
@@ -0,0 +1,4 @@
+export async function load({ params }) {
+ const { text } = params;
+ return { text };
+}
diff --git a/src/routes/(app)/accepted/[text]/+page.svelte b/src/routes/(app)/accepted/[text]/+page.svelte
new file mode 100644
index 00000000..07d05310
--- /dev/null
+++ b/src/routes/(app)/accepted/[text]/+page.svelte
@@ -0,0 +1,40 @@
+<script>
+ import Icon from "$comp/Icon.svelte";
+ import Qr from "$comp/Qr.svelte";
+ import { back, copy } from "$lib/utils";
+ let { data } = $props();
+ let { text } = $derived(data);
+ let { username } = $derived(data.user);
+ let url = `https://coinos.io/p/${username}`;
+</script>
+
+<!-- <div class="container px-4 max-w-4xl mx-auto space-y-5"> -->
+<!-- <Qr {text} /> -->
+<!-- -->
+<!-- <button -->
+<!-- type="button" -->
+<!-- class="btn break-all !h-auto flex-nowrap p-4 font-normal leading-normal" -->
+<!-- onclick={() => copy(text)} -->
+<!-- > -->
+<!-- <iconify-icon noobserver icon="ph:copy-bold" width="32"></iconify-icon> -->
+<!-- <div class="my-auto">{text}</div> -->
+<!-- </button> -->
+<!-- </div> -->
+<!-- -->
+
+<div class="border-8 border-black p-8 w-[710px] mx-auto mt-20 space-y-5">
+ <div class="flex gap-2 mx-auto justify-center">
+ <img src="/images/bitcoin.png" class="w-16 h-16 my-auto" />
+ <h3 class="text-4xl font-bold text-center my-auto">Bitcoin Accepted</h3>
+ </div>
+ <Qr {text} />
+ <div class="text-center text-5xl font-bold">coinos.io/{username}</div>
+ <div class="flex w-full justify-center gap-4 mt-10">
+ <img
+ src="/images/logo.png"
+ class="ml-auto my-auto"
+ style="width: 180px"
+ />
+ </div>
+</div>
+
diff --git a/src/routes/(app)/accepted/[text]/raw/+server.ts b/src/routes/(app)/accepted/[text]/raw/+server.ts
new file mode 100644
index 00000000..a24d3a3c
--- /dev/null
+++ b/src/routes/(app)/accepted/[text]/raw/+server.ts
@@ -0,0 +1,16 @@
+import Qr from "qrcode-base64";
+
+export async function GET({ params }) {
+ const { text } = params;
+
+ const dataUri = Qr.drawImg(text, { size: 600 });
+ const base64Data = dataUri.split(",")[1];
+ const binaryData = Buffer.from(base64Data, "base64");
+
+ return new Response(binaryData, {
+ headers: {
+ "Content-Type": "image/gif",
+ "Cache-Control": "public, max-age=31536000, immutable",
+ },
+ });
+}